﻿/**
 * Licensed under the MIT License
 *
 * Copyright (c) 2010 Laurent Berthelot
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 * the Software, and to permit persons to whom the Software is furnished to do so,
 * subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 */
package marcel.display.draw.props {
	
	import flash.geom.Point;
	
	/**
	 * Ellipse properties used to draw circles, ellipses, rings, circulars diagrams, etc. (used by EllipseShape.as).
	 * @author Laurent Berthelot
	 */
	public class EllipseProps
	{
		//--------------------------------------------------------------------------
		//
		//  Public vars
		//
		//--------------------------------------------------------------------------
		/**
		 * The angle of the arc to draw.
		 */
		public var angle:Number;
		/**
		 * The radius of the ellipse, Point representing the width and the height.
		 */
		public var radius:Point;
		/**
		 * The inner radius of the ellipse, Point representing the width and the height (used for draw a ring).
		 */
		public var radiusInner:Point;
		
		//--------------------------------------------------------------------------
		//
		//  Constructor
		//
		//--------------------------------------------------------------------------
		/**
		 * Constructs a new EllipseProps instance.
		 * @param	radius		The radius of the ellipse, Point representing the width and the height.
		 * @param	angle		The angle of the arc to draw.
		 * @param	radiusInner	The inner radius of the ellipse, Point representing the width and the height (used for draw a ring).
		 */
		public function EllipseProps(radius:Point, angle:Number = NaN, radiusInner:Point = null) {
			this.radius = radius;
			this.angle = isNaN(angle)? 2 * Math.PI : angle;
			this.radiusInner = (radiusInner === null)? new Point(0, 0) : radiusInner;
		}
		
	}
}